﻿/************************************************
 * Nombre de clase: login
 * Fecha inicio: sabado 20 de octubre del 2012
 * Descripción: clase utilizada para las acciones del formulario de login
 * Nombre programadores: Jesus Peña Cadena
 * Versión: 1.0
 * Fecha de término: miercoles 24 de octubre del 2012
 * Fecha modificaciones: lunes 12 de noviembre del 2012
 **************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Punto_de_Venta
{
    /* clase que nos ayudara a procesar las operaciones que el usuario
     * requerira al intentar ingresar al sistema mediante la interfaz
     */
    public partial class login : Form
    {
        //declaracion e inicializacion de variables globales
        Operaciones operacion = new Operaciones(); //creamos un objeto de la clase Operaciones
        public login()
        {
            InitializeComponent();  //inicializamos los componentes de la clase que son los que crearan el windows forms
        }

        //en este metodo se indican las acciones que el formulario hara al momento de cargar
        private void login_Load(object sender, EventArgs e)
        {
            this.ControlBox = false;  //le indicamos que deshabiite el controlBox para que no cuente con los botones de cerrar, minimizar y maximizar
        }

        //metodo que responde al dar click en el boton de iniciar sesion
        private void btnIniciarSesion_Click(object sender, EventArgs e)
        {
            String nombreTabla = "empleados";       //declaramos el string con el nombre de la tabla que utilizaremos para la consulta
            String condicionesConsulta = " where id_empleado=" + txtUsuario.Text + " AND password='" + txtContraseña.Text + "';";       //declaramos el string con la condicion que tendra la consulta a realizar
            DataTable resultado = operacion.SqlSelect("*", nombreTabla,condicionesConsulta);  //creamos un datatable en el cual cacharemos el resultado de la consulta
            if (resultado.Rows.Count>0){                 //comprobamos si el resultado es diferente de null
                DataRow renglon = resultado.Rows[0];        //creamos un datarow para tomar el primer renglon del resultado y poder extraer los datos que utilizaremos
                int id = Convert.ToInt16(renglon["id_empleado"]);       //convertimos la columna con el nombre id_empleado, lo convertimos a entero y se lo asignamos a la variable id
                int nivel = Convert.ToInt16(renglon["nivel"]);          //convertimos a entero la columna nivel que esta dentro del renglon y lo almacenamos en la variable nivel
                String nombre = Convert.ToString(renglon["nombre"]);     //declaramos el nombre y le almacenamos el valor de la columna nombre que esta dentro del renglon
                Operaciones.SetDatosUsuario(nombre, id, nivel);         //asignamos los valores tomados del renglon a los datos de usuario que estaran almacenados durante la ejecucion del programa
                Hide();                                                //ocultamos el formulario actual
                Principal_SPV principal = new Principal_SPV();       //creamos objeto del formulario Principal
                principal.Show();                                       //mostramos el formulario Principal
            }
            else{           //si el resultado de la consulta es null
                Operaciones.MessageBoxx("Error!!#, no se pudo autenticar el usuario, verifique que el id y la contraseña sean correctos","");      //mostramos un mensaje indicando que los datos introducidos son incorrectos
            }
        }

        //metodo utilizado para cerrar el software
        private void btnCerrar_Click(object sender, EventArgs e)
        {
            Operaciones.CerrarAplicacion(); //invocamos el metodo cerrar aplicacion que se encuentra en la clase Operaciones
        }

      
       
    }
}
